package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.CreditServiceConfig;

/**
 * 服务配置Service接口
 * 
 * @author ruoyi
 * @date 2025-01-28
 */
public interface ICreditServiceConfigService 
{
    /**
     * 查询服务配置
     * 
     * @param configId 服务配置主键
     * @return 服务配置
     */
    public CreditServiceConfig selectCreditServiceConfigByConfigId(Long configId);

    /**
     * 查询服务配置列表
     * 
     * @param creditServiceConfig 服务配置
     * @return 服务配置集合
     */
    public List<CreditServiceConfig> selectCreditServiceConfigList(CreditServiceConfig creditServiceConfig);

    /**
     * 新增服务配置
     * 
     * @param creditServiceConfig 服务配置
     * @return 结果
     */
    public int insertCreditServiceConfig(CreditServiceConfig creditServiceConfig);

    /**
     * 修改服务配置
     * 
     * @param creditServiceConfig 服务配置
     * @return 结果
     */
    public int updateCreditServiceConfig(CreditServiceConfig creditServiceConfig);

    /**
     * 批量删除服务配置
     * 
     * @param configIds 需要删除的服务配置主键集合
     * @return 结果
     */
    public int deleteCreditServiceConfigByConfigIds(Long[] configIds);

    /**
     * 删除服务配置信息
     * 
     * @param configId 服务配置主键
     * @return 结果
     */
    public int deleteCreditServiceConfigByConfigId(Long configId);

    /**
     * 根据服务代码查询服务配置
     * 
     * @param serviceCode 服务代码
     * @return 服务配置
     */
    public CreditServiceConfig selectCreditServiceConfigByServiceCode(String serviceCode);

    /**
     * 查询可用的服务配置列表
     * 
     * @return 服务配置集合
     */
    public List<CreditServiceConfig> selectAvailableServiceConfigs();

    /**
     * 校验用户是否符合服务条件
     * 
     * @param userId 用户ID
     * @param serviceCode 服务代码
     * @return 结果
     */
    public boolean checkUserServiceEligibility(Long userId, String serviceCode);
} 